package com.simonall.print;

import java.io.InputStream;

import javax.print.PrintService;
import javax.print.PrintServiceLookup;

import com.simonall.enums.FileExtenNameEnum;

/**
 * 打印服务
 * 
 * @author simonall
 */
public interface PrintHandler {

	/**
	 * 默认打印机
	 * 
	 * @return
	 */
	default PrintService defaultService() {
		return PrintServiceLookup.lookupDefaultPrintService();
	}

	/**
	 * 处理类型
	 * 
	 * @return
	 */
	public FileExtenNameEnum[] handleType();

	/**
	 * 打印服务
	 * 
	 * @param bytes       打印数据
	 * @param serviceName 服务名称
	 * @param copies      打印份数
	 */
	void print(byte[] bytes, PrintService service, Integer copies) throws Exception;

	/**
	 * 打印服务
	 * 
	 * @param input       输入流
	 * @param serviceName 服务名称
	 * @param copies      打印份数
	 */
	void print(InputStream input, PrintService service, Integer copies) throws Exception;
}
